def test():
    x = 2
    y = 3
    return x,y
# 多个值的return以及赋值
a,b= test()
print(a)
print(b)

# 关键字传参,以键值对的方式传参
def test1(name,age,count):
    print(f"{name}nnnnnnn")
    print(f"{age}aaaaaa")
    print(f"{count}ccccc")

test1(age=20, count=40,name='adad')

# 缺省参数,默认参数,默认参数必须写在最后面
def test3(age,name='lz'):
    print(f"{name}{age}岁")

test3(23,'lisi')
test3(23)

# 不定长参数
def test4(*args):
    print(f"传入的args是{args}")
    # 默认元组类型
    print(f"传入的args的类型是{type(args)}")

test4('a',3,'i')

# 两个星号入参必须是键值对的形式
def test5(**kwargs):
    print(f"传入的args是{kwargs}")
    # 默认字典类型
    print(f"传入的args的类型是{type(kwargs)}")

test5(name='a',count=6,age=30)

# 函数作为参数传入
def computed(x,y):
    return x+y
def test6(fun):
    print(type(fun))
    result = fun(2,5)
    print(result)

test6(computed)
# lambda匿名函数,只可临时使用一次,一行代码,lambda 传入的参数:执行语句
test6(lambda x,y:x+y)